CCreateText 类

CCreateText 类实现了ICommand接口。在绘图区单击鼠标左键时,新建一个窗体作为有模式对话框输入文本内容。用Graphics对象的DrawString方法将对话框中得到的字符串输出到绘图区,将新创建的文本添加到图元集合类中。

code.vc#.net
	public class CCreateText:ICommand
	{
		public CCreateText()
		{
		}
		public void LButtonDown(Graphics g, PointF aPos,ArrayList ges,ArrayList geSels)
	    {
            string strContent;
	        //利用输入对话框输入文本内容
            Text text=new Text();
			text.ShowDialog(new Form1());
            strContent=text.SetConent();
	        CText newText=new CText(strContent, aPos);
	        newText.Draw(g, DrawMode.Normal);
	        ges.Add(newText);
	    }
		public void MouseMove(Graphics g, PointF aPos)
		{
		}
	    public void RButtonDown(Graphics g, PointF aPos)
		{
		}
	}

使用VC#.NET时,需要新建一个窗体,在Form1类中创建一个它的实例以后,将它作为有模式对话框进行调用。窗体的界面如图4-1所示。

Document Image
\[\]

图4-1 "文本设置"对话框

需要从"文本设置"对话框中返回要输入的文本的内容。在该窗体类中添加下面的代码:

code.vc#.net
		private string txt;
		private void button1_Click(object sender, System.EventArgs e)
		{
		    txt=textBox1.Text;
			this.Dispose();
		}
		public string SetConent()
		{
			return txt;
		}
		private void button2_Click(object sender, System.EventArgs e)
		{
			this.Dispose();
		}